package com.lyb.server.hb.demo.controller;

import com.lyb.server.hb.demo.bean.PayResult;
import com.lyb.server.hb.demo.bean.ThirdResp;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * 接收航邦支付回调通知
 */
@RestController
@RequestMapping("/api")
public class CallBackController {
    /**
     * 接收支付结果回调通知并进行响应
     * 接口要求为post类型
     * @param payResult
     */
    @PostMapping("/order_callback")
    public ThirdResp processCallback(@RequestBody PayResult payResult) {
        System.out.println(payResult);
        //TODO 处理自己的业务逻辑

        //回复聚合平台
        ThirdResp thirdResp = new ThirdResp();

        //回复--成功(回复成功后聚合平台不再进行回调通知)
        thirdResp.setCode("200");
        thirdResp.setRes("SUCCESS");

        //回复--失败(回复失败后聚合平台会再次进行回调通知,直到回复成功或超过24小时)
//        thirdResp.setCode("400");
//        thirdResp.setRes("FAIL");
        return thirdResp;
    }

    /**
     * 接收清算结果回调通知并进行响应
     * 接口要求为post类型
     * @param payResult
     */
    @PostMapping("/liquidation_callback")
    public ThirdResp processCallback2(@RequestBody PayResult payResult) {
        System.out.println(payResult);
        //TODO 处理自己的业务逻辑

        //回复聚合平台
        ThirdResp thirdResp = new ThirdResp();

        //回复--成功(回复成功后聚合平台不再进行回调通知)
        thirdResp.setCode("200");
        thirdResp.setRes("SUCCESS");

        //回复--失败(回复失败后聚合平台会再次进行回调通知,直到回复成功或超过24小时)
//        thirdResp.setCode("400");
//        thirdResp.setRes("FAIL");
        return thirdResp;
    }
}
